<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>在内嵌的css样式中指定 style 属性的值</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <style>
        .mydiv {
            width: 200px;
            height: 100px;
            background-color: black;
        }

        .red {
            background-color: red;
        }

        .yellow {
            background-color: yellow;
        }

        .blue {
            background-color: blue;
        }

        .mywidth {
            width: 450px;
        }
    </style>
</head>

<body>
<div id="app">
    <!-- 通过给html元素的 class 属性绑定 vue 中的属性值，得到样式的动态绑定 -->
    <div class="mydiv" v-bind:class="{red:temp}"></div>
    <hr>
    <!-- 通过 computed 返回一个对象，对象里放着多个键值对 -->
    <div class="mydiv" :class="myClassesDiv"></div>
    <hr>
    <!-- 通过双向绑定改变样式 -->
    <div class="mydiv" :class="mycolor"></div>
    <hr>
    <!-- 通过数组多个样式的组合 -->
    <div class="mydiv" :class="[mycolor,mw]"></div>
    <hr>
    <!-- 在内嵌的css样式中指定 style 属性的值
    注意：style 引用了 vue 中的内容，因此是一个键值对，所以需要大括号，对象的的键是不能出现“background—color”，因此改成 backgroundColor
    -->
    <div class="mydiv" :style="{backgroundColor:mycolor2}"></div>
    <hr>
    <button type="button" @click="temp=!temp">点我</button>
    <input type="text" v-model="mycolor">
</div>

<script type="text/javascript">
    // Vue的实例
    new Vue({
        el: "#app",    // 接管哪一个元素，和该元素绑定
        data: {        // 数据
            temp: false,
            mycolor: 'blue',
            mw:'mywidth',
            mycolor2:'green'
        },
        computed: {
            myClassesDiv: function () {
                return {
                    red: this.temp,
                    mywidth: this.temp
                }
            }
        }
    })
</script>
</body>